/* IF2030 - Algorirma dan Struktur Data */
/* Kelas/Kelompok/Tahun  : 03/09/2011 */
/* Tanggal   : 2 Desember 2011 */
/* File      : mtanggal.c */
/* Deskripsi : Driver tipe bentukan tanggal */

#include "tanggal.h"
#include <stdio.h>

int main() {
    int menu;
    int x, y, z;
    date D1, D2, D3;
    int a, n;
    string c;
    do {
        printf("menu : \n");
        printf(" 1. masukkan tanggal 1 \n");
        printf(" 2. masukkan tanggal 2 \n");
        printf(" 3. apakah tanggal kabisat? \n");
        printf(" 4. apakah tanggal 1 lebih kecil dari tanggal 2 \n");
        printf(" 5. hari esok \n");
        printf(" 6. beberapa hari setelah hari ini \n");
        printf(" 7. hari kemarin \n");
        printf(" 8. selisih hari \n");
        printf(" 9. tulis tanggal sendiri \n");
        printf(" 0. keluar \n");
        printf(" pilihan agan : \n");
        scanf("%d",&menu);
        switch (menu) {
        case 1 : {
            printf("masukkan tanggal : \n");
            scanf("%d", &x);
            printf("masukkan bulan : \n");
            scanf("%d", &y);
            printf("masukkan tahun : \n");
            scanf("%d", &z);
            D1 = MakeDate(x,y,z);
            if (IsDateValid(D1)) {
                printDate(D1);
                printf(" \n");
            } else {
                printf("ngaco gan, ulang \n");
            }
            break;
        }
        case 2 : {
            printf("masukkan tanggal : \n");
            scanf("%d", &x);
            printf("masukkan bulan : \n");
            scanf("%d", &y);
            printf("masukkan tahun : \n");
            scanf("%d", &z);
            D2 = MakeDate(x,y,z);
            if (IsDateValid(D2)) {
                printDate(D2);
                printf(" \n");
            } else {
                printf("ngaco gan, ulang \n");
            }
            break;
        }
        case 3 : {
            printf("pilih tanggal yang akan diuji : 1/2 \n");
            scanf("%d", &a);
            if (a == 1) {
                if (IsKabisat(D1)) {
                    printf("tanggalnya kabisat gan \n");
                } else {
                    printf("tanggalnya ga kabisat gan \n");
                }
            } else if (a == 2) {
                if (IsKabisat(D2)) {
                    printf("tanggalnya kabisat gan \n");
                } else {
                    printf("tanggalnya ga kabisat gan \n");
                }
            }
            break;
        }
        case 4 : {
            if (IsLess(D1,D2)) {
                printf("tanggal 1 sebelum tanggal 2 \n");
            } else {
                printf("tanggal 1 setelah tanggal 2 \n");
            }
            break;
        }
        case 5 : {
            printf("pilih tanggal hari ini : 1/2 \n");
            scanf("%d", &a);
            if (a == 1) {
                printDate(NextDay(D1));
            } else if (a == 2) {
                printDate(NextDay(D2));
            }
            printf(" \n");
            break;
        }
        case 6 : {
            printf("pilih tanggal hari ini : 1/2 \n");
            scanf("%d", &a);
            printf("berapa hari lagi ? ");
            scanf("%d", &n);
            if (a == 1) {
                printDate(NextNDay(D1,n));
            } else if (a == 2) {
                printDate(NextNDay(D2,n));
            }
            printf(" \n");
            break;
        }
        case 7 : {
            printf("pilih tanggal hari ini : 1/2 \n");
            scanf("%d", &a);
            if (a == 1) {
                printDate(BeforeDay(D1));
                printf(" \n");
            } else if (a == 2) {
                printDate(BeforeDay(D2));
                printf(" \n");
            }
            break;
        }
        case 8 : {
            printf ("%d", SelisihHari(D1,D2));
            printf(" \n");
            break;
        }
        case 9 : {
            printf("tulis sendiri gan tanggalnya : ");
            scanf("%s", &c);
            D3 = StrToDate(c);
            printDate(D3);
            printf(" \n");
        }
        }
    } while (menu != 0);
    return 0;
}


